//=============================================================================
// ProMesh.NET - .NET Web Application Framework 
//
// Copyright (c) 2003-2008 Philippe Leybaert
//
// Permission is hereby granted, free of charge, to any person obtaining a copy 
// of this software and associated documentation files (the "Software"), to deal 
// in the Software without restriction, including without limitation the rights 
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
// copies of the Software, and to permit persons to whom the Software is 
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in 
// all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//=============================================================================

using System;
using System.Collections.Generic;

namespace Activa.ProMesh
{
    internal class MinimalSessionLoggingProvider : ISessionLoggingProvider
    {
        public class Session : ISessionRecord
        {
            
        }

        private readonly static object _staticLock = new object();
        private readonly Dictionary<string, string> _visitors = new Dictionary<string, string>();
        private static int _sessionId = 0;
        private static int _visitorId = 0;

        static MinimalSessionLoggingProvider()
        {
            _sessionId = (int)(DateTime.Now - new DateTime(2006, 1, 1)).TotalSeconds;
            _visitorId = (int)(DateTime.Now - new DateTime(2005, 1, 1)).TotalSeconds;
        }
 
        public string CreateSession(string httpReferer, string httpRemoteAddress, string httpUserAgent)
        {
            return Guid.NewGuid().ToString();
        }

        public void AssignVisitorToSession(string sessionId, string visitorId)
        {
            _visitors[sessionId] = visitorId;
        }

        public void AssignUserToSession(string sessionId, string userId)
        {
        }


        T ISessionLoggingProvider.GetSessionObject<T>(string sessionId)
        {
            return null;
        }

        public Type GetSessionObjectType()
        {
            return typeof(Session);
        }
    }
}
